package com.wobito.service.impl;


import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wobito.common.utils.DateUtils;
import com.wobito.common.utils.StringUtils;
import com.wobito.mapper.ConfigTypeMapper;
import com.wobito.pojo.bean.ConfigType;
import com.wobito.pojo.vo.config.AddConfigTypeVO;
import com.wobito.pojo.vo.config.ConfigTypeVO;
import com.wobito.pojo.vo.config.UpdateConfigTypeVO;
import com.wobito.service.IConfigTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 参数配置表 服务实现类
 * </p>
 *
 * @author lambyang
 * @since 2024-08-16
 */
@Service
public class ConfigTypeServiceImpl extends ServiceImpl<ConfigTypeMapper, ConfigType> implements IConfigTypeService {

    @Autowired
    private ConfigTypeMapper configTypeMapper;

    @Override
    public List<ConfigType> selectConfigList(ConfigTypeVO configTypeVO) {
        List<ConfigType> configTypes = configTypeMapper.selectList(new LambdaQueryWrapper<ConfigType>()
                .like(StringUtils.isNotEmpty(configTypeVO.getQueryName()), ConfigType::getConfigName, configTypeVO.getQueryName())
                .eq(configTypeVO.getType() != null, ConfigType::getType, configTypeVO.getType())
                .eq(configTypeVO.getIsDeleted()!=null,ConfigType::getIsDeleted,configTypeVO.getIsDeleted()));
        return configTypes;
    }

    @Override
    public int insertConfigType(AddConfigTypeVO addConfigTypeVO) {
        ConfigType configType=BeanUtil.copyProperties(addConfigTypeVO,ConfigType.class);
        return configTypeMapper.insert(configType);
    }

    @Override
    public int updateConfigType(UpdateConfigTypeVO updateConfigTypeVO) {
        ConfigType configType=BeanUtil.copyProperties(updateConfigTypeVO,ConfigType.class);
        configType.setUpdateTime(DateUtils.getNowDate());
        return configTypeMapper.updateById(configType);
    }
}
